home *** CD-ROM | disk | FTP | other *** search
/ Aminet 12 / Aminet 12 (1996)(GTI - Schatztruhe)[!][Jun 1996].iso / Aminet / util / batch / Join.lha / Join.e next >
Encoding:
Text File  |  1995-12-04  |  893 b   |  34 lines

  1. -> Join 1.1 : Joins list of x files into 1 big file using very little mem
  2. -> by Kyzer/CSG
  3.  
  4. OPT OSVERSION=37
  5. PROC main()
  6.   DEF args:PTR TO LONG,rdargs,files:PTR TO LONG,fc,inh,outh,size,buf,bufsz
  7.   args:=[0,0,0]
  8.   IF rdargs:=ReadArgs('FILE/M/A,AS=TO/K/A,BUF/N',args,NIL)
  9.     IF args[2]=0
  10.       bufsz:=20000 /* user didn't give a 'buf' arg */
  11.     ELSE
  12.       IF (bufsz:=Long(args[2]))<1024 THEN bufsz:=1024
  13.     ENDIF
  14.     files:=args[0]
  15.     fc:=0
  16.     IF (buf:=AllocMem(bufsz,0))
  17.       IF (outh:=Open(args[1],NEWFILE))
  18.         REPEAT
  19.           IF inh:=Open(files[fc++],OLDFILE)
  20.             REPEAT
  21.               IF (size:=Read(inh,buf,bufsz))>0 THEN Write(outh,buf,size)
  22.             UNTIL size<=0
  23.             Close(inh)
  24.           ENDIF
  25.         UNTIL files[fc]=0
  26.         Close(outh)
  27.       ENDIF
  28.      FreeMem(buf,bufsz)
  29.     ENDIF
  30.     FreeArgs(rdargs)
  31.   ENDIF
  32. ENDPROC
  33. CHAR '$VER: Join 1.1 (3.12.95)',0
  34.